package com.pictavore

import com.google.inject.Scopes

import org.jdesktop.application.SingleFrameApplication

import com.pictavore.plugin.PluginManager
import com.pictavore.PictavoreApp
import com.pictavore.plugin.tool.ToolPluginManager
import com.pictavore.plugin.tool.ToolPlugin
import com.pictavore.plugin.DummyPlugin
import com.pictavore.log.Logger
import com.pictavore.message.Messenger
import com.google.inject.AbstractModule

import com.pictavore.gui.DisplayPanel

/**
 *
 * @author caleb
 */
class PictavoreModule extends AbstractModule {
    def pictavoreApp

    def PictavoreModule(PictavoreApp app) {
        this.pictavoreApp = app
    }

    void configure() {
        bind(Pictavore)
        bind(SingleFrameApplication).toInstance(pictavoreApp)
        bind(PluginManager)
        bind(ToolPluginManager)
        bind(Messenger)
        bind(DisplayPanel)
        bind(Logger)
    }
}

